package sharetime.core.pager;

import java.util.Iterator;
import java.util.List;

@SuppressWarnings("unchecked")
public interface Pager {
	public static final Pager EMPTY_PAGER = new DefaultPager();

	public static final int PRELOAD_LIMIT = 100;

	public static final int NO_POSITION = -1;

	public abstract boolean isEmpty();

	public abstract Iterator iterator();

	public abstract List getCurrentPage();

	public abstract void nextPage();

	public abstract boolean onLastPage();

	public abstract void skipTo(int i) throws PagerException;

	public abstract int getIndex();

	public abstract int getIndexOfFirstItemInCurrentPage();
}
